 
/****************************************************************************
                Университет:    Санкт-Петербургский Политехнический Университет
                Кафедра:        Компьютерные системы и программные технологии
                Аспирант:       Быков Илья Иванович
                Программа:      Расчет коэффициентов распределения
                Модуль:         movenodecommand.h
                Назначение:
****************************************************************************/

#ifndef MOVENODECOMMAND_H
#define MOVENODECOMMAND_H

#include <QRect>
#include <QList>

#include "command.h"

class Node;
class Document;

/* Клас для перемещения объектов-узлов. Унаследован от Command.
        undo() - отменить, откат к предыдущему действию
        redo() - вернуть, вернуться к состоянию до отката */
class MoveNodeCommand : public Command
{
public:
    MoveNodeCommand(Document *doc, QList<Node*> nodeList, const QPointF &diffPos, bool final = false,  QUndoCommand *parent = 0);

    void undo();
    void redo();

    bool mergeWith(const QUndoCommand *command);

private:
    QList<Node*> m_nodeList;
    QList<QPointF> m_oldPosList;
    QPointF m_diffPos;
    bool m_final;
};

#endif // MOVENODECOMMAND_H
